iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
自我挑戰組

從0到有學習JavaScript系列 第 19

第三章 型別、值和變數-問題筆記 Boolean

  • 分享至 

  • xImage
  •  

一、Boolean值是什麼?
任何的JavaScript值都可以轉換成為一個boolean值
下列的值會轉換成false:

  • undefined
  • null
  • 0
  • -0
  • NaN
  • "" //空字串

除了上面之外,其他所有的值,包括物件和陣列,都會轉換為true
換句話說,只有少部分的值會被解析成false,我們稱這些值叫做 falsy value。
而其他的值叫做truthy value。

二、Boolean 如何在JavaScript中被控制?
能夠根據Boolean值的true和false,而採取行動的是if else述句。

任何物件,包含原本是false的布林物件,當放在條件式內時,會被視為true:

const x = new Boolean(false);     // x為Boolean{false}
if (x) {
  // this code is executed  
}

上面被視為true的行為,在布林的原始型別(primitives)是不會有的。
PS. x使用 typeof 測試型別為布林值,表示x為false,不會執行 if 內的計算:

const x = false;
if (x) {
  // this code is not executed
}

三、將值轉換為Boolean的方法?

  • !! x:將x轉換成布林值。
  • Boolean():與!!x方法一樣。
const x = !!x;    // x 為true
const y = Boolean(y);    // y 為true

注意,不可使用Boolean的構造函數 new Boolean() 去轉換非布林的值變成布林值,如要轉換,請使用Boolean或者 !! (布林反轉) 來做轉換。

const good = Boolean(expression); // use this
const good2 = !!expression; // or this
const bad = new Boolean(expression); // don't use this!

const myFalse = new Boolean(false); // initial value of false  myFalse 是true

const g = Boolean(myFalse); // initial value of true  g是false
const myString = new String("Hello"); // string object   myString是true
const s = Boolean(myString); // initial value of true   s是true

Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean


上一篇
第三章 型別、值和變數-問題筆記 RegExp match(), g, capturing group
下一篇
第三章 型別、值和變數-問題筆記 Boolean.toString
系列文
從0到有學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言